Workflow
Harmonix is designed so that teams can develop plugins on their own, with simple and standard tools.
Development workflow
- Application teamBuild the shell
@uxland/harmonixShell ready - Plugin teamsDevelop the plugins
npm create @uxland/harmonix-pluginnpm run dev - Plugin StorePublish
npm run buildharmonix publish - In the browserRun
bootstrapPlugins()
- Build the shell. The application team creates the shell on top of Harmonix: it declares the regions and the API, until the application is ready to host plugins. See Building a shell.
- Develop the plugins. Plugin teams start with the plugin creator. It gives them a project that runs in the Harmonix demo shell.
- Publish. Plugins are built and published, typically to a Plugin Store. The store keeps track of the versions of each plugin and of who can use them.
- Run. The application loads the plugins and initializes them in parallel, building the final application.
Execution flow
- The user opens the application in the browser.
- The shell renders its skeleton, creates its regions and starts loading the plugins.
- Each plugin is loaded, typically from the Plugin Store.
- The
initializefunction of each plugin is called in parallel, each with its own API instance. If one plugin fails, the others still load. - Each plugin performs its initialization tasks: registering views, subscribing to events, loading data.
- The UI is composed as the views are registered in the regions.
- The user sees a single application made of different plugins and can interact with it.